TrueNAS Scale Zerotier安装和配置

啊!Zerotier真是太棒啦

由于校园网屏蔽了所有SMB端口,且同时我的NAS有内网穿透的需求,所以我打算为我的TrueNAS Scale安装上Zerotier。

系统环境变量设置

在安装Zerotier之前我们先需要设置两个系统环境变量,进入系统-高级页面

truenas_zerotier_sys_panel.png

在系统控制面板中添加net.ipv4.ip_forwardnet.ipv4.conf.all.src_valid_mark,设置值为1,也就是true。

truenas_zerotier_sys_env.png

Zerotier安装

接下来安装Zerotier。

由于TrueNAS的Charts已经提供了Zerotier的APP,我们可以直接使用Charts进行安装。
在应用页面中搜索并部署Zerotier:

install_zerotier.png

在网络选项下添加项,并在其中输入你需要加入的网络的id。

install_zerotier_settings.png

Auth Token (API Key)Identity Secret以及Identity Public暂时空着不填。

在下面网络配置这一项中,一定要勾选Host Network,否则zerotier连不上NAS自身开启的服务。
然后点击安装完成安装流程。

启动Zerotier服务,记得要在Zerotier的网站面板上勾选一下NAS的这个IP,同意让NAS加入该网络。

Zerotier网络地址持久化

按照如上步骤安装之后,会发现有一个问题,就是每一次重启服务都会在zerotier的网络中分配一次新的机器ip地址。
这是因为没有设置Identity SecretIdentity Public
接下来完成该步骤。

1、在TrueNAS中,导航到系统设置,然后选择命令行(Shell)选项。

2、在打开的shell窗口中输入以下命令

1
k3s kubectl get namespaces

输出如下:

1
2
3
4
5
6
7
8
NAME              STATUS   AGE
default Active 31d
kube-system Active 31d
kube-public Active 31d
kube-node-lease Active 31d
openebs Active 31d
ix-webdav Active 31d
ix-zerotier Active 51m

3、使用获取到的命名空间运行以下命令:

1
k3s kubectl get -n ix-zerotier pods

输出如下:

1
2
NAME                        READY   STATUS    RESTARTS        AGE
zerotier-59700b7689-gwcqw 0/1 Running 1 (2m30s ago) 7m36s

4、使用命名空间和Pod名称信息,在Pod内部打开一个shell,使用以下命令:

1
k3s kubectl exec -n ix-zerotier --stdin --tty zerotier-59700b7689-gwcqw -- /bin/bash

5、使用以下命令生成Zerotier identity文件:

1
zerotier-idtool generate identity.secret identity.public

6、查看identity.secretidentity.public

1
cat identity.secret
1
cat identity.public

7、记下identity.secretidentity.public的值,接着转到应用程序,选择Zerotier,然后点击编辑。
identity.secretidentity.public分别填入对应的框中,更新配置即可。

然后zerotier会生成一个新的ip地址,并且重新启动Zerotier应用程序或TrueNAS,该地址也不会变化。